package ai.rpc.core.utils;

import cn.hutool.core.io.resource.NoResourceException;
import cn.hutool.core.util.StrUtil;
import cn.hutool.setting.dialect.Props;
import cn.hutool.setting.yaml.YamlUtil;

/**
 * @Author: mengyu
 * @Date: 2024/7/15
 */
public class ConfigUtils {

    /**
     * 读取配置（忽略生产环境）
     * @param tClass 配置需要转换的配置类
     * @param prefix 配置类在配置中的前缀
     * @return 配置类
     * @param <T> 配置类类型
     */
    public static <T> T loadConfig(Class<T> tClass, String prefix){
        return loadConfig(tClass,prefix,"");
    }

    /**
     * 读取配置
     * @param tClass 配置需要转换的配置类
     * @param prefix 配置类在配置中的前缀
     * @param environment 生产环境
     * @return 配置类
     * @param <T> 配置类的类型
     */
    public static <T> T loadConfig(Class<T> tClass, String prefix, String environment){
        StringBuilder stringBuilder = new StringBuilder("application");
        if(!StrUtil.isBlankIfStr(environment)){
            stringBuilder.append("-").append(environment);
        }
        stringBuilder.append(".properties");
        Props props = new Props(stringBuilder.toString());
        return props.toBean(tClass, prefix);
    }
}
